package com.example.mall_system.service;

import com.example.mall_system.common.Result;

public interface PaymentService {
    /**
     * 处理订单支付
     * @param orderId 订单ID
     * @param paymentMethod 支付方式 (0:支付宝, 1:微信, 2:银行卡)
     * @return 支付结果
     */
    Result<Object> processPayment(Long orderId, Integer paymentMethod);
    
    /**
     * 验证支付结果
     * @param orderId 订单ID
     * @param paymentData 支付数据
     * @return 验证结果
     */
    Result<Boolean> verifyPayment(Long orderId, String paymentData);
    
    /**
     * 退款处理
     * @param orderId 订单ID
     * @param reason 退款原因
     * @return 退款结果
     */
    Result<Object> refundPayment(Long orderId, String reason);

    /**
     * 验证支付验证码
     * @param orderId 订单ID
     * @param paymentMethod 支付方式
     * @param verificationCode 验证码
     * @return 验证结果
     */
    Result<String> verifyPaymentCode(Long orderId, Integer paymentMethod, String verificationCode);

    /**
     * 取消支付
     * @param orderId 订单ID
     * @param paymentMethod 支付方式
     * @return 取消结果
     */
    Result<String> cancelPayment(Long orderId, Integer paymentMethod);
} 